home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1996 April / Macworld (1996-04).dmg / Shareware World / Entertainment / General / Xconq 7.0.1 / lib / future.g < prev    next >
Text File  |  1995-08-22  |  11KB  |  362 lines

  1. (game-module "future"
  2.   (title "2200 AD")
  3.   (blurb "Futuristic period from Jay Scott")
  4.   )
  5.  
  6. (unit-type hovercar (char "h")
  7.   (help "easily built, moves fast and captures cities"))
  8. (unit-type groundcar (char "g")
  9.   (help "slow but tough, captures cities"))
  10. (unit-type saucer (char "s")
  11.   (help "moves fast, easy to build, but short range"))
  12. (unit-type destroyer (char "d")
  13.   (help "heavy aircraft that defeats subs and saucers"))
  14. (unit-type constructor (char "c")
  15.   (help "builds bases anywhere"))
  16. (unit-type mothership (char "m")
  17.   (help "carries aircraft and ground units"))
  18. (unit-type transport-sub (char "t")
  19.   (help "quickly built, carries ground units"))
  20. (unit-type attack-sub (char "a")
  21.   (help "attacks cities and carries rockets"))
  22. (unit-type rocket (char "R")
  23.   (help "missile that can kill most units and hit cities"))
  24. (unit-type base (char "/") (image-name "saucerpad")
  25.   (help "airstrip + port but no production"))
  26. (unit-type town (char "*")
  27.   (help "produces but easily captured and may revolt"))
  28. (unit-type city (char "@")
  29.   (help "metropolis - hard to capture"))
  30.  
  31. (material-type fuel (help "used for both movement and combat"))
  32.  
  33. (terrain-type sea (char ".") (color "sky blue"))
  34. (terrain-type shallows (char ",") (color "cyan"))
  35. (terrain-type swamp (char "=") (color "dark gray"))
  36. (terrain-type plains (char "+") (color "green"))
  37. (terrain-type forest (char "%") (color "forest green"))
  38. (terrain-type desert (char "~") (color "yellow"))
  39. (terrain-type mountains (char "^") (color "sienna"))
  40. (terrain-type ice (char "_") (color "white"))
  41. (terrain-type vacuum (char ":") (color "black"))
  42.  
  43. (define h hovercar)
  44. (define g groundcar)
  45. (define s saucer)
  46. (define d destroyer)
  47. (define c constructor)
  48. (define m mothership)
  49. (define t transport-sub)
  50. (define a attack-sub)
  51. (define R rocket)
  52. (define / base)
  53. (define * town)
  54. (define @ city)
  55.  
  56. ;FIX I guess nuked is damaged-terrain now, T1 T2 -> N
  57. ;FIX t* t* nuked    ; most terrain won't actually change
  58. ;FIX desert ( plains forest ) nuked
  59. ;FIX mountains ice nuked
  60.  
  61. (define cities ( / * @ ))
  62. (define movers ( h g s d c m t a R ))
  63.  
  64. (define land ( swamp plains forest desert mountains ice ))
  65.  
  66. (add h image-name "hovercraft")
  67. (add g image-name "tank")
  68. (add d image-name "delta")
  69. (add c image-name "builder")
  70. (add t image-name "sub")
  71. (add a image-name "sub")
  72. (add * image-name "town22")
  73. (add @ image-name "city22")
  74.  
  75. ;;; Static relationships.
  76.  
  77. ;; Unit-unit.
  78.  
  79. (table unit-capacity-x
  80.   (m ( h g s d c ) ( 6 4 10 2 1 ))
  81.   (a R 4)
  82.   (t ( h g ) ( 2 1 ))
  83.   )
  84.  
  85. (add cities capacity ( 8 32 32 ))
  86.  
  87. (table unit-size-as-occupant
  88.   (u* u* 99)
  89.   (movers cities 1)
  90.   )
  91.  
  92. ;; Unit-material.
  93.  
  94. (table unit-storage-x (u* fuel ( 30 40 16 16 30 40 200 150 30 500 1000 2000 )))
  95.  
  96. ;;; Vision.
  97.  
  98. ;FIX visibility is U T -> N, U's % visibility in T
  99.  
  100. (table visibility (( t a ) t* 0))
  101.  
  102. (add cities see-always 1)
  103.  
  104. ;;; Actions.
  105.  
  106. (add movers acp-per-turn ( 3 1 8 4 3 6 2 3 10 ))
  107. (add cities acp-per-turn ( 0 1 1 ))
  108.  
  109. ;;; Movement.
  110.  
  111. (add cities speed 0)
  112.  
  113. (table mp-to-enter-terrain
  114.   (u* t* 99)
  115.   (h plains 1)
  116.   (h shallows 2)
  117.   (g ( plains desert ) 1)
  118.   (( s d c m ) t* 1)
  119.   (( t a ) ( sea shallows ) 1)
  120.   (R t* 1)
  121.   (/ t* 1)    ; allows base to be constructed on any terrain
  122.   )
  123.  
  124. (table consumption-per-move (movers fuel 1))
  125.  
  126. ;;; Construction.
  127.  
  128. (add movers cp ( 4 6 2 10 10 20 7 12 8 ))
  129. (add / cp 3)
  130.  
  131. (table acp-to-create
  132.   (c / 1)
  133.   ((* @) movers 1)
  134.   )
  135.  
  136. (table cp-on-creation
  137.   (c / 1)
  138.   ((* @) movers 1)
  139.   )
  140.  
  141. (table acp-to-build
  142.   (c / 1)
  143.   ((* @) movers 1)
  144.   )
  145.  
  146. (table cp-per-build
  147.   (c / 1)
  148.   ((* @) movers 1)
  149.   )
  150.  
  151. #|
  152. ;FIX tp-to-build is U1 U2 -> TP that U1 needs before building U2
  153. ; you also need UnitProperty acp-to-toolup and Table tp-per-toolup
  154. (table tp-to-build add (u* u* 20))
  155. (table tp-to-build add (u* ( d m ) 50))
  156. (table tp-to-build add (u* c 100))
  157. (table tp-to-build add (u* R 300))
  158. |#
  159.  
  160. ;;; Combat.
  161.  
  162. (add u* hp-max ( 1 1 1 2 2 5 2 2 1 10 20 40 ))
  163.  
  164. (table hit-chance 
  165.   (h u* (  65  60  40  50  50  50   5   5  50  99  99  99 ))
  166.   (g u* (  80  60  50  40  50  50  10  10  50  99  99  99 ))
  167.   (s u* (  50  40  70  10  70  90  10  10  99  99  99  99 ))
  168.   (d u* (  10  10  65  20  70  70  50  50  20  99  99  99 ))
  169.   (c u* (  20  20  10   5  20  10   0   0  20   0   0   0 ))
  170.   (m u* (  15  10  20   5  40  40   0   0  30   0   0   0 ))
  171.   (t u* (   0   0   0   0   0   0   0   0   0   0   0   0 ))
  172.   (a u* (  40  60  10  10  20  20  60  20   0  99  99  99 ))
  173.   (R u* (  99  99  60  80  90  90  70  70  20  99  99  99 ))
  174.   (/ u* (  10  10  10  20   0   0   0  10   0   0   0   0 ))
  175.   (/ u* (  30  30  30  40   0   0   0  20   0   0   0   0 ))
  176.   (/ u* (  50  50  50  50   0   0   0  50   0   0   0   0 ))
  177.   )
  178.  
  179. (table damage 
  180.   (u* u* 1)
  181.   (a cities 3)
  182.   (R u* 4)
  183.   (R cities 10)
  184.   (@ u* 2)
  185.   )
  186.  
  187. (table capture-chance
  188.   (h cities ( 80 70 20 ))
  189.   (g cities ( 90 80 30 ))
  190.   )
  191.  
  192. (table consumption-per-attack (u* fuel 1))
  193.  
  194. (table hit-by (u* fuel 1))
  195.  
  196. (add R acp-to-detonate 1)
  197.  
  198. ;;; Other actions.
  199.  
  200. ;FIX hp-per-disband is U1 U2 -> HP lost in a disband action performed by U2
  201. ; you might add U1 acp-to-disband U2 as well, U1 U2 -> ACP
  202. ; (table hp-per-disband add (movers u* 100))
  203. ; (table hp-per-disband add (/ u* 100))
  204.  
  205. ;FIX true cities neutral
  206.  
  207. ;;; Backdrop economy.
  208.  
  209. (table base-production (cities fuel 10))
  210.  
  211. (table base-consumption
  212.   (( s d ) fuel 1)
  213.   (u* fuel 1)    ; not plausible, but helps machine players (???)
  214.   )
  215.  
  216. ;(table out-length (movers u* -1))    ; so low-capacity units don't lose fuel
  217.  
  218. ;; default?
  219. (table productivity (cities t* 100))
  220.  
  221. ;;; Scoring.
  222.  
  223. (add cities point-value ( 1 5 25 ))
  224.  
  225. (scorekeeper (do last-side-wins))
  226.  
  227. ;;; Setup.
  228.  
  229. (add t* alt-percentile-min (   0  69  70  70  70  70  95  99   0 ))
  230. (add t* alt-percentile-max (  69  70  72  95  95  95  99 100   0 ))
  231. (add t* wet-percentile-min (   0   0  50  20  80   0   0   0   0 ))
  232. (add t* wet-percentile-max ( 100 100 100  80 100  20 100 100   0 ))
  233.  
  234. (set edge-terrain ice)
  235.  
  236. (add cities start-with ( 0 2 1 ))
  237.  
  238. (table independent-density (* land 100))
  239.  
  240. (table favored-terrain
  241.   (u* t* 0)
  242.   (( * @ ) ( plains ) 100)
  243.   )
  244.  
  245. ;;; Documentation.
  246.  
  247. (game-module (notes (
  248. "A science fiction xconq period.
  249. It's weirder and wilder than the historical periods provided with the game.
  250. Lots of things happen faster, so the game is often shorter.
  251. "
  252. "This is in the public domain.
  253. "
  254. " -----  -----  strategy  -----  -----
  255. "
  256. "The game is designed so you need to have at least a few of every
  257. kind of unit to do well in a full game.  (You may be able to get by
  258. without transport subs if you start out on a big continent.)  If
  259. anybody finds they can consistently do well without some kind of unit,
  260. I want to hear how so I can fix it!
  261. "
  262. "Every unit has at least one nemesis which can destroy it relatively
  263. easily.  Your goal should be to fight every battle at an advantage,
  264. pitting each unit against its natural prey--saucers against hovercars,
  265. defenders against saucers, hovercars against defenders.
  266. "
  267. "Rockets ensure that the game doesn't drag on too long.  Invasion is
  268. risky, but when it works the invader wins quickly.  Rockets by contrast
  269. are a slow but steady way to nibble at the enemy production base.
  270. "
  271. "Machine players are especially easy to defeat in this period.  If you're
  272. lucky enough to start near one, you can blitz it with hovercars and
  273. saucers and win in short order.  It takes longer if you're far from
  274. the robot.  Gaining air superiority is usually the first step.
  275. "
  276. "The game hasn't been played by enough people for me to tell what
  277. strategies are best in different circumstances.  If I've done my
  278. job well, the best plan will depend in detail on the opponent and
  279. the situation, and you'll have to think hard.
  280. "
  281. "I'd appreciate any comments.
  282.  
  283.     Jay Scott, August 1987.
  284.     ...bpa!swatsun!scott
  285.        ...seismo!bpa!swatsun!scott"
  286. )))
  287.  
  288. #|
  289. Hovercar.  A fast-moving ground unit that easily captures towns.  A
  290. hovercar floats on an antigravity field, so it can maneuver easily
  291. even in mountainous terrain or shallow water (though not deep ocean).
  292. Hovercars are invaluable in an invasion for their ability to take
  293. cities quickly, but they are easily destroyed by flying saucers or
  294. groundcars.
  295.  
  296. Groundcar.  A slow-moving unit which travels on treads, like today's
  297. tanks.  It can afford to carry a large shield generator, which makes
  298. it tough to destroy.  It can negotiate forests by pushing down the
  299. trees, or burning them away with its gun, but it can't move in
  300. mountains.  Groundcars are ideal for defending your homeland from
  301. invasion.  If you have enough on hand, you can often bounce back even
  302. after many of your towns are captured.
  303.  
  304. Saucer.  The flying saucer is a weak but fast-moving aircraft.  Saucers
  305. are very cheap to produce; one use is to overwhelm stronger units with
  306. mob attacks.  They can even bombard a city to rubble, unless there's
  307. a Defender around.  Saucers are also good for recon, within their limited
  308. range.
  309.  
  310. Defender.  A heavy, delta-wing aircraft that's your only safe defense
  311. against the enemy's swarms of saucers.  It uses aerodynamic lift to 
  312. supplement its drive, allowing it to carry relatively massive
  313. antisubmarine equipment.  But it's an easy target for ground units.
  314.  
  315. Constructor.  An automated airborn factory that can build a base from
  316. on-site materials in only one turn.  It can build a base anywhere, even
  317. on water or ice.  That means, for instance, that you can build bridges
  318. between islands for ground units.  The constructor is the only way
  319. to produce the sophisticated equipment needed for a twenty-second
  320. century base (you don't know how hard it is to refuel those saucers :-).
  321. But it's vulnerable to attack, especially from saucers.
  322.  
  323. Mother ship.  Expensive to build, but the only way to mount a major
  324. invasion.  A mother ship can carry lots of saucers, lots of ground
  325. units, a couple Defenders and a constructor, all at once.  (The constructor
  326. is useful for building stepping stone bases toward the enemy.)
  327. A mass attack is sure to bring down a mother ship, so it deserves
  328. saucer patrols--but you may have to forego patrols if you're trying
  329. for a surprise invasion.
  330.  
  331. Transport sub.  Carries only a few ground units, but much cheaper to
  332. produce than a mother ship.  This is how you get your troops to another
  333. island early in the game.  And since, like subs in the WWII period,
  334. it's invisible until bumped into, it's good for sneak raids on isolated
  335. outposts.  A transport submarine can't attack anything by itself.
  336.  
  337. Attack sub.  Strong against transport subs, and, if they're on the coast,
  338. ground units and cities.  It stays underwater and pokes its weapons out,
  339. which makes it relatively invulnerable to counterattack.  It's faster
  340. than a transport sub, and good for wide-ranging exploration.  And to top
  341. it off, it can carry several rockets to within easy range of enemy cities.
  342. On the other hand, all submarines have to be careful of Defenders.
  343.  
  344. Rocket.  Actually a remotely guided missile, which does a lot of damage
  345. to its target but vaporizes itself in the process.  One rocket is
  346. enough to take out most units--it's not quite enough by itself
  347. to down a mother ship.  Three rockets together are sufficient to pound
  348. a town back to a base.  Only occasionally will a rocket miss its target.
  349. Besides stomping cities, they're useful for eliminating enemy groundcars
  350. and Defenders just before an invasion.  Since rockets are easily
  351. shot down if spied in mid-flight, it's sensible to launch them from
  352. attack subs near their targets.  [Because of the way xconq works,
  353. messages about rockets don't always make sense.]
  354. |#
  355.  
  356.  
  357. (game-module (instructions (
  358.   )))
  359.  
  360. (game-module (design-notes (
  361.   )))
  362.